package com.msh.frame.client.base;

import java.util.Collection;
import java.util.List;

/**
 * @author shihu 定义基本的 数据库方法
 */
public interface BaseDao<T extends BasePo, Q extends BaseQo> {

  /**
   * 新增
   */
  long insert(T param);

  /**
   * 批量新增
   */
  int insertCollection(Collection<T> param);

  /**
   * 更新
   */
  int update(T param);

  /**
   * 获取数量
   */
  int count(Q param);

  /**
   * 获取列表
   */
  List<T> list(Q param);

  /**
   * 通过id获取
   */
  T get(Long id);

  /**
   * 通过ids获取
   */
  List<T> getByIds(Collection<Long> ids);

  /**
   * 删除
   */
  int delete(Long id);

  /**
   * 通过id集合 删除
   */
  int deleteByIds(Collection<Long> ids);
}
